package com.yycx.module.system.provider.service;

import com.yycx.common.base.entity.EntityMap;
import com.yycx.common.mybatis.base.service.IBaseService;
import com.yycx.module.system.client.entity.SysDept;

import java.io.Serializable;
import java.util.List;

/**
 * 部门 接口
 *
 * @author flyme
 * @date 2019-07-05
 */
public interface SysDeptService extends IBaseService<SysDept> {
    /**
     * 查询tree需要的数据结构
     *
     * @return
     */
    List<EntityMap> deptTreeList(Long parentId,Long companyId);

    /**
     * 根据companyId从统计数量
     * @param companyId
     * @return
     */
    Long countByCompanyId(Serializable companyId);

    /**
     * 根据parentId从统计数量
     * @param parentId
     * @return
     */
    public Long countByParentId(Serializable parentId);

    /**
     * 查询用户已分配的部门
     * @param userId
     * @return
     */
    List<EntityMap> selectDeptByUserId(Long userId);

    List<Long> selectDeptByUserId(Long userId, Long companyId);

    /**
     * 查询用户已分配的部门
     * @param userId
     * @return
     */
    List<EntityMap> treeByUserId(Long userId,Long parentId, Long companyId);
}
